home *** CD-ROM | disk | FTP | other *** search
/ C++ für Kids / C++ for kids.iso / SETUP / US / CBUILDER / DATA.Z / RICHEDIT.H < prev    next >
C/C++ Source or Header  |  1997-02-13  |  30KB  |  1,035 lines

  1. /*
  2.  *    RICHEDIT.H
  3.  *    
  4.  *    Purpose:
  5.  *        RICHEDIT v2.0 public definitions.  Note that there is additional
  6.  *        functionality available for v2.0 that is not in the original
  7.  *        Windows 95 release.
  8.  *    
  9.  *    Copyright (c) 1985-1996, Microsoft Corporation
  10.  */
  11.  
  12. #ifndef _RICHEDIT_
  13. #define    _RICHEDIT_
  14. #pragma option -b
  15.  
  16. #ifdef _WIN32
  17. #pragma option -b.
  18. #include <pshpack4.h>
  19. #pragma option -b
  20. #elif !defined(RC_INVOKED)
  21. #pragma pack(4)
  22. #endif
  23.  
  24. #ifdef __cplusplus
  25. extern "C" {
  26. #endif /* __cplusplus */
  27.  
  28. /* To mimic RichEdit 1.0 behavior for Unicode apps, simply set _RICHEDIT_VER to 0x0100 */
  29. #ifndef _RICHEDIT_VER
  30. #define _RICHEDIT_VER    0x0200
  31. #endif
  32.  
  33. /*
  34.  *    To make some structures which can be passed between 16 and 32 bit windows
  35.  *    almost compatible, padding is introduced to the 16 bit versions of the
  36.  *    structure.
  37.  */
  38. #ifdef _WIN32
  39. #    define    _WPAD    /##/
  40. #else
  41. #    define    _WPAD    WORD
  42. #endif
  43.  
  44. #define cchTextLimitDefault 32767
  45.  
  46. /* Richedit2.0 Window Class. */
  47.  
  48. #define RICHEDIT_CLASSA        "RichEdit20A"
  49. #define RICHEDIT_CLASS10A    "RICHEDIT"            // Richedit 1.0
  50.  
  51. #ifndef MACPORT
  52. #define RICHEDIT_CLASSW        L"RichEdit20W"
  53. #else    /*----------------------MACPORT */
  54. #define RICHEDIT_CLASSW        TEXT("RichEdit20W")    /* MACPORT change */
  55. #endif /* MACPORT  */
  56.  
  57. #if (_RICHEDIT_VER >= 0x0200 )
  58. #ifdef UNICODE
  59. #define RICHEDIT_CLASS        RICHEDIT_CLASSW
  60. #else
  61. #define RICHEDIT_CLASS        RICHEDIT_CLASSA
  62. #endif /* UNICODE */
  63. #else
  64. #define RICHEDIT_CLASS        RICHEDIT_CLASS10A
  65. #endif /* _RICHEDIT_VER >= 0x0200 */
  66.  
  67. /* RichEdit messages */
  68.  
  69. #ifndef WM_CONTEXTMENU
  70. #define WM_CONTEXTMENU            0x007B
  71. #endif
  72.  
  73. #ifndef WM_PRINTCLIENT
  74. #define WM_PRINTCLIENT            0x0318
  75. #endif
  76.  
  77. #ifndef EM_GETLIMITTEXT
  78. #define EM_GETLIMITTEXT            (WM_USER + 37)
  79. #endif
  80.  
  81. #ifndef EM_POSFROMCHAR    
  82. #define EM_POSFROMCHAR            (WM_USER + 38)
  83. #define EM_CHARFROMPOS            (WM_USER + 39)
  84. #endif
  85.  
  86. #ifndef EM_SCROLLCARET
  87. #define EM_SCROLLCARET            (WM_USER + 49)
  88. #endif
  89. #define EM_CANPASTE                (WM_USER + 50)
  90. #define EM_DISPLAYBAND            (WM_USER + 51)
  91. #define EM_EXGETSEL                (WM_USER + 52)
  92. #define EM_EXLIMITTEXT            (WM_USER + 53)
  93. #define EM_EXLINEFROMCHAR        (WM_USER + 54)
  94. #define EM_EXSETSEL                (WM_USER + 55)
  95. #define EM_FINDTEXT                (WM_USER + 56)
  96. #define EM_FORMATRANGE            (WM_USER + 57)
  97. #define EM_GETCHARFORMAT        (WM_USER + 58)
  98. #define EM_GETEVENTMASK            (WM_USER + 59)
  99. #define EM_GETOLEINTERFACE        (WM_USER + 60)
  100. #define EM_GETPARAFORMAT        (WM_USER + 61)
  101. #define EM_GETSELTEXT            (WM_USER + 62)
  102. #define EM_HIDESELECTION        (WM_USER + 63)
  103. #define EM_PASTESPECIAL            (WM_USER + 64)
  104. #define EM_REQUESTRESIZE        (WM_USER + 65)
  105. #define EM_SELECTIONTYPE        (WM_USER + 66)
  106. #define EM_SETBKGNDCOLOR        (WM_USER + 67)
  107. #define EM_SETCHARFORMAT        (WM_USER + 68)
  108. #define EM_SETEVENTMASK            (WM_USER + 69)
  109. #define EM_SETOLECALLBACK        (WM_USER + 70)
  110. #define EM_SETPARAFORMAT        (WM_USER + 71)
  111. #define EM_SETTARGETDEVICE        (WM_USER + 72)
  112. #define EM_STREAMIN                (WM_USER + 73)
  113. #define EM_STREAMOUT            (WM_USER + 74)
  114. #define EM_GETTEXTRANGE            (WM_USER + 75)
  115. #define EM_FINDWORDBREAK        (WM_USER + 76)
  116. #define EM_SETOPTIONS            (WM_USER + 77)
  117. #define EM_GETOPTIONS            (WM_USER + 78)
  118. #define EM_FINDTEXTEX            (WM_USER + 79)
  119. #ifdef _WIN32
  120. #define EM_GETWORDBREAKPROCEX    (WM_USER + 80)
  121. #define EM_SETWORDBREAKPROCEX    (WM_USER + 81)
  122. #endif
  123.  
  124. /* Richedit v2.0 messages */
  125. #define    EM_SETUNDOLIMIT            (WM_USER + 82)
  126. #define EM_REDO                    (WM_USER + 84)
  127. #define EM_CANREDO                (WM_USER + 85)
  128. #define EM_GETUNDONAME            (WM_USER + 86)
  129. #define EM_GETREDONAME            (WM_USER + 87)
  130. #define EM_STOPGROUPTYPING        (WM_USER + 88)
  131.  
  132. #define EM_SETTEXTMODE            (WM_USER + 89)
  133. #define EM_GETTEXTMODE            (WM_USER + 90)
  134.  
  135. /* enum for use with EM_GET/SETTEXTMODE */
  136. typedef enum tagTextMode
  137. {
  138.     TM_PLAINTEXT            = 1,
  139.     TM_RICHTEXT                = 2,    /* default behavior */
  140.     TM_SINGLELEVELUNDO        = 4,
  141.     TM_MULTILEVELUNDO        = 8,    /* default behavior */
  142.     TM_SINGLECODEPAGE        = 16,
  143.     TM_MULTICODEPAGE        = 32    /* default behavior */
  144. } TEXTMODE;
  145.  
  146. #define EM_AUTOURLDETECT        (WM_USER + 91)
  147. #define EM_GETAUTOURLDETECT        (WM_USER + 92)
  148. #define EM_SETPALETTE            (WM_USER + 93)
  149. #define EM_GETTEXTEX            (WM_USER + 94)
  150. #define EM_GETTEXTLENGTHEX        (WM_USER + 95)
  151.  
  152. /* Far East specific messages */
  153. #define EM_SETPUNCTUATION        (WM_USER + 100)
  154. #define EM_GETPUNCTUATION        (WM_USER + 101)
  155. #define EM_SETWORDWRAPMODE        (WM_USER + 102)
  156. #define EM_GETWORDWRAPMODE        (WM_USER + 103)
  157. #define EM_SETIMECOLOR            (WM_USER + 104)
  158. #define EM_GETIMECOLOR            (WM_USER + 105)
  159. #define EM_SETIMEOPTIONS        (WM_USER + 106)
  160. #define EM_GETIMEOPTIONS        (WM_USER + 107)
  161. #define EM_CONVPOSITION         (WM_USER + 108)
  162.  
  163. #define EM_SETLANGOPTIONS        (WM_USER + 120)
  164. #define EM_GETLANGOPTIONS        (WM_USER + 121)
  165. #define EM_GETIMECOMPMODE        (WM_USER + 122)
  166.  
  167. /* Options for EM_SETLANGOPTIONS and EM_GETLANGOPTIONS */
  168. #define IMF_AUTOKEYBOARD        0x0001
  169. #define IMF_AUTOFONT            0x0002
  170. #define IMF_IMECANCELCOMPLETE    0x0004    // high completes the comp string when aborting, low cancels.
  171. #define IMF_IMEALWAYSSENDNOTIFY 0x0008
  172.  
  173. /* Values for EM_GETIMECOMPMODE */
  174. #define ICM_NOTOPEN                0x0000
  175. #define ICM_LEVEL3                0x0001
  176. #define ICM_LEVEL2                0x0002
  177. #define ICM_LEVEL2_5            0x0003
  178. #define ICM_LEVEL2_SUI            0x0004
  179.  
  180. /* New notifications */
  181.  
  182. #define EN_MSGFILTER            0x0700
  183. #define EN_REQUESTRESIZE        0x0701
  184. #define EN_SELCHANGE            0x0702
  185. #define EN_DROPFILES            0x0703
  186. #define EN_PROTECTED            0x0704
  187. #define EN_CORRECTTEXT            0x0705            /* PenWin specific */
  188. #define EN_STOPNOUNDO            0x0706
  189. #define EN_IMECHANGE            0x0707            /* Far East specific */
  190. #define EN_SAVECLIPBOARD        0x0708
  191. #define EN_OLEOPFAILED            0x0709
  192. #define EN_OBJECTPOSITIONS        0x070a
  193. #define EN_LINK                    0x070b
  194. #define EN_DRAGDROPDONE            0x070c
  195.  
  196. /* Event notification masks */
  197.  
  198. #define ENM_NONE                0x00000000
  199. #define ENM_CHANGE                0x00000001
  200. #define ENM_UPDATE                0x00000002
  201. #define ENM_SCROLL                0x00000004
  202. #define ENM_KEYEVENTS            0x00010000
  203. #define ENM_MOUSEEVENTS            0x00020000
  204. #define ENM_REQUESTRESIZE        0x00040000
  205. #define ENM_SELCHANGE            0x00080000
  206. #define ENM_DROPFILES            0x00100000
  207. #define ENM_PROTECTED            0x00200000
  208. #define ENM_CORRECTTEXT            0x00400000        /* PenWin specific */
  209. #define ENM_SCROLLEVENTS        0x00000008
  210. #define ENM_DRAGDROPDONE        0x00000010
  211.  
  212. /* Far East specific notification mask */
  213. #define ENM_IMECHANGE            0x00800000        /* unused by RE2.0 */
  214. #define ENM_LANGCHANGE            0x01000000
  215. #define ENM_OBJECTPOSITIONS        0x02000000
  216. #define ENM_LINK                0x04000000
  217.  
  218. /* New edit control styles */
  219.  
  220. #define ES_SAVESEL                0x00008000
  221. #define ES_SUNKEN                0x00004000
  222. #define ES_DISABLENOSCROLL        0x00002000
  223. /* same as WS_MAXIMIZE, but that doesn't make sense so we re-use the value */
  224. #define ES_SELECTIONBAR            0x01000000
  225. /* same as ES_UPPERCASE, but re-used to completely disable OLE drag'n'drop */
  226. #define ES_NOOLEDRAGDROP        0x00000008
  227.  
  228. /* New edit control extended style */
  229. #ifdef    _WIN32
  230. #define ES_EX_NOCALLOLEINIT        0x01000000
  231. #endif    
  232.  
  233. /* These flags are used in FE Windows */
  234. #define ES_VERTICAL                0x00400000
  235. #define    ES_NOIME                0x00080000
  236. #define ES_SELFIME                0x00040000
  237.  
  238. /* Edit control options */
  239. #define ECO_AUTOWORDSELECTION    0x00000001
  240. #define ECO_AUTOVSCROLL            0x00000040
  241. #define ECO_AUTOHSCROLL            0x00000080
  242. #define ECO_NOHIDESEL            0x00000100
  243. #define ECO_READONLY            0x00000800
  244. #define ECO_WANTRETURN            0x00001000
  245. #define ECO_SAVESEL                0x00008000
  246. #define ECO_SELECTIONBAR        0x01000000
  247. #define ECO_VERTICAL            0x00400000        /* FE specific */
  248.  
  249.  
  250. /* ECO operations */
  251. #define ECOOP_SET                0x0001
  252. #define ECOOP_OR                0x0002
  253. #define ECOOP_AND                0x0003
  254. #define ECOOP_XOR                0x0004
  255.  
  256. /* new word break function actions */
  257. #define WB_CLASSIFY            3
  258. #define WB_MOVEWORDLEFT        4
  259. #define WB_MOVEWORDRIGHT    5
  260. #define WB_LEFTBREAK        6
  261. #define WB_RIGHTBREAK        7
  262.  
  263. /* Far East specific flags */
  264. #define WB_MOVEWORDPREV        4
  265. #define WB_MOVEWORDNEXT        5
  266. #define WB_PREVBREAK        6
  267. #define WB_NEXTBREAK        7
  268.  
  269. #define PC_FOLLOWING        1
  270. #define    PC_LEADING            2
  271. #define    PC_OVERFLOW            3
  272. #define    PC_DELIMITER        4
  273. #define WBF_WORDWRAP        0x010
  274. #define WBF_WORDBREAK        0x020
  275. #define    WBF_OVERFLOW        0x040    
  276. #define WBF_LEVEL1            0x080
  277. #define    WBF_LEVEL2            0x100
  278. #define    WBF_CUSTOM            0x200
  279.  
  280. /* Fa